/**
 * 
 */

Ext.define('AccidentInfo', {
			extend : 'Ext.data.Model',
			idProperty : 'id',
			fields : [{
						name : 'accid'
					}, {
						name : 'prodpid'
					}, {
						name : 'status'
					}, {
						name : 'infotime'
					}, {
						name : 'infoperson'
					}, {
						name : 'infolocation'
					}, {
						name : 'injuId'
					}, {
						name : 'injuName'
					}, {
						name : 'causes',
						type : 'string'
					}, {
						name : 'activities',
						type : 'string'
					}, {
						name : 'prodtypes',
						type : 'string'
					}, {
						name : 'prodId'
					}, {
						name : 'prodName'
					}, {
						name : 'proderId'
					}, {
						name : 'proderName'
					}, {
						name : 'injuredtime'
					}, {
						name : 'prodpname'
					}]
		});
var store = Ext.create('Ext.data.Store', {
			model : 'AccidentInfo',
			pageSize : 20,
			proxy : {
				type : 'ajax',
				url : 'accidentAction!queryPage.action',
				reader : {
					type : 'json',
					root : 'pageList'
				}
			}
		});
function readProdName(data, cell, record, rowIndex, columnIndex, store) {
	var accid = record.get('accid');
	var ProdName = data;
	var ptpid = record.get('prodpid');
	var style = 'color:#15428b;cursor: pointer;font-weight:bold;text-decoration: underline;';
	ProdName = '<span style="' + style + '"  data="' + ProdName
			+ '" onclick="openDetail(' + accid + ',' + ptpid + ')">' + ProdName
			+ '</span>';
	return ProdName;
}
function openDetail(accid, ptpid) {
	Ext.util.Cookies.set('accidentId', accid);
	Ext.util.Cookies.set('flag', 'look');
	Ext.util.Cookies.set('ptpid', ptpid);
	window.top.Utils.addPage('accidentLook' + accid, '报告单详情',
			'js/resources/business/accident/accidentLook.js');
}

// ===================搜索===========================
var searchProdName = new Ext.form.TextField({
			fieldLabel : '产品名称',
			labelWidth : 70,
			id : "searchProdName",
			// hidden:true,
			emptyText : '请输入...'
		});
var prodStore = new Ext.data.JsonStore({
			proxy : {
				type : 'ajax',
				url : 'ptManageAction!getByPid.action?flag=search',
				reader : {
					type : 'json',
					root : 'list'
				}
			},
			fields : ['name', 'id']
		});
prodStore.load();

var prodCombobox = Ext.create('Ext.form.ComboBox', {
			fieldLabel : '产品分类',
			labelWidth : 60,
			store : prodStore,
			name : 'ptid',// 控件名称
			emptyText : '请选择...',
			editable : false,
			displayField : 'name',
			valueField : 'id'
		});
var selectStore = Ext.create('Ext.data.Store', {
			fields : ['id', 'name'],
			data : [{
						'id' : 1,
						'name' : '最近一个月'
					}, {
						'id' : 2,
						'name' : '最近三个月'
					}, {
						'id' : 0,
						'name' : '全部'
					}]
		});
var selectCombo = Ext.create('Ext.form.field.ComboBox', {
			store : selectStore,
			fieldLabel : '筛选',
			labelWidth : 40,
			// width : 180,
			editable : false,
			name : 'select',// 控件名称
			displayField : 'name',
			valueField : 'id',// 实际值
			emptyText : '请选择...',
			queryMode : 'local',
			listeners : {
// select : function(combo, records, eOpts) { // 该处实现自动对store加载
			// var proxy = store.getProxy(); // 获取store里面的proxy全部
			// var select = null;
			// begin.reset();
			// end.reset();
			// if (records[0].data.id != 0) {
			// select = records[0].data.id;
			// } else {
			// select = 0;
			// }
			// proxy.extraParams = {
			// "select" : select,
			// "prodName" : searchProdName.getValue(),
			// "prodtype" : prodCombobox.getValue()
			// };
			// store.reload();
			// }
			}
		});
var begin = new Ext.form.DateField({
			fieldLabel : '采集时间',
			labelWidth : 60,
			id : 'begin',
			emptyText : '请选择...',
			format : 'Y-m-d',
			editable : false,
			vtype : 'daterange',// daterange类型为上代码定义的类型
			endDateField : 'end',// 必须跟endDate的id名相同
			onTriggerClick : function() {
				var dt1 = this;
				Ext.form.DateField.prototype.onTriggerClick.apply(dt1,
						arguments);
				if (Ext.isEmpty(dt1.clearBtn)) {
					this.clearBtn = new Ext.Button({
								text : '清除',
								handler : function() {
									dt1.setValue("");
									dt1.picker.hide();
									dt1.collapse();
								}
							});
					dt1.clearBtn.render(dt1.picker.todayBtn.container);
				}
			}
		});
var end = new Ext.form.DateField({
			fieldLabel : '至',
			labelSeparator : '',
			id : 'end',
			labelWidth : 30,
			emptyText : '请选择...',
			format : 'Y-m-d',
			editable : false,
			vtype : 'daterange',// daterange类型为上代码定义的类型
			startDateField : 'begin',// 必须跟endDate的id名相同
			onTriggerClick : function() {
				var dt1 = this;
				Ext.form.DateField.prototype.onTriggerClick.apply(dt1,
						arguments);
				if (Ext.isEmpty(dt1.clearBtn)) {
					this.clearBtn = new Ext.Button({
								text : '清除',
								handler : function() {
									dt1.setValue("");
									dt1.picker.hide();
									dt1.collapse();
								}
							});
					dt1.clearBtn.render(dt1.picker.todayBtn.container);
				}
			}
		});
var searchBtn = {
	xtype : 'button',
	text : '搜索',
	iconCls : 'icon-search',
	// hidden : true,
	handler : function() {
		var proxy = store.getProxy();
		var b1 = begin.getValue();
		var b2 = end.getValue();
		if (b1 != null && b2 != null) {
			if (b1 > b2) {
				Ext.Msg.alert('提示', "使用日期开始日期大于结束日期");
				return;
			}
		}
		var searchBegin, searchEnd, select;
		var searchBegin, searchEnd, select, ptid;
		if (prodCombobox.getValue() != 0 && prodCombobox.getValue()) {
			ptid = prodCombobox.getValue();
		} else {
			ptid = 0;
		}
		if (begin.getValue() != null) {
			searchBegin = begin.getValue().Format("yyyy-MM-dd"); // 起始时间
		}
		if (end.getValue() != null) {
			searchEnd = end.getValue().Format("yyyy-MM-dd"); // 截止时间
		}
		if (selectCombo.getValue() != 1 && selectCombo.getValue() != 2) {
			select = 0;
		} else {
			select = selectCombo.getValue();
		}
		proxy.extraParams = {
			"prodName" : searchProdName.getValue(),
			"beginDate" : searchBegin,
			"prodtype" : ptid,
			"endDate" : searchEnd,
			"select" : select
		};
		store.reload();
	}
};
// ==================================================
var grid = Ext.create('Ext.grid.Panel', {
	store : store,
	border : 0,
	selModel : Ext.create('Ext.selection.CheckboxModel'),
	columns : [{
				text : 'accid',
				dataIndex : 'accid',
				hidden : true
			}, new Ext.grid.RowNumberer(), {
				text : '<center><b>产品名称</b></center>',
				sortable : true,
				renderer : readProdName,
				dataIndex : 'prodName',
				flex : 1
			}, {
				text : '<center><b>产品分类</b></center>',
				sortable : true,
				renderer : function(value, metadata, record, rowIndex,
						colIndex, store) {
					if (record.get('prodpname') != null) {
						value = record.get('prodpname') + '/'
								+ record.get('prodtypes');
					} else {
						value = '';
					}
					return value;
				},
				flex : 2
			}, {
				text : '<center><b>生产者名称</b></center>',
				sortable : true,
				dataIndex : 'proderName',
				flex : 1
				// }, {
			// text : '当事人姓名',
			// sortable : true,
			// dataIndex : 'injuName',
			// flex : 1
		}	, {
				text : '<center><b>伤害原因</b></center>',
				sortable : true,
				dataIndex : 'causes',
				renderer : function(value, metadata, record, rowIndex,
						colIndex, store) {
					metadata.style = 'overflow:auto;padding: 3px 6px;text-overflow: ellipsis;white-space: nowrap;white-space:normal;line-height:15px;';
					return value;
				},
				flex : 2
			}, {
				text : '<center><b>发生时间</b></center>',
				sortable : true,
				dataIndex : 'injuredtime',
				flex : 1
				// }, {
			// text : '活动',
			// sortable : true,
			// dataIndex : 'activities',
			// renderer : function(value, metadata, record, rowIndex,
			// colIndex, store) {
			// metadata.style = 'overflow:auto;padding: 3px 6px;text-overflow:
			// ellipsis;white-space:
			// nowrap;white-space:normal;line-height:15px;';
			// return value;
			// },
			// flex : 2
		}	, {
				text : '<center><b>采集时间</b></center>',
				sortable : true,
				// renderer : Ext.util.Format.dateRenderer('Y-m-d'),
				dataIndex : 'infotime',
				flex : 1
			}, {
				text : '<center><b>采集小区</b></center>',
				sortable : true,
				dataIndex : 'infolocation',
				flex : 1
			}, {
				text : '<center><b>状态</b></center>',
				sortable : true,
				dataIndex : 'status',
				renderer : function(v) {
					if (v == 1) {
						return '草稿'
					}
					if (v == 2) {
						return '已提交'
					}
				},
				flex : 1
			}],
	stripeRows : true,
	dockedItems : [{
				xtype : 'toolbar',
				dock : 'top',
				items : [searchProdName, prodCombobox, selectCombo, searchBtn]
			}],
	tbar : [{
		xtype : 'button',
		text : '修改',
		iconCls : 'icon-edit',
		handler : function() {
			var selMode = grid.getSelectionModel();
			var model = selMode.getSelection();
			if (model.length == 1) {
				var raw = model[0].raw;
				Ext.util.Cookies.set('accidentId', raw.accid);
				Ext.util.Cookies.set('injuId', raw.injuId);
				Ext.util.Cookies.set('prodId', raw.prodId);
				Ext.util.Cookies.set('ptpid', raw.prodpid);
				Ext.util.Cookies.set('proderId', raw.proderId);
				Ext.util.Cookies.set('prodpname', raw.prodpname);
				Ext.util.Cookies.set('flag', 'edit');
				window.top.Utils.addPage('accidentEdit' + raw.accid, '报告单修改',
						'js/resources/business/accident/edit4leader.js');
			} else {
				Ext.Msg.alert('提示', '请选择一行数据进行修改！');
			}
		}
	}, {
		xtype : 'button',
		text : '删除',
		iconCls : 'icon-delete',
		handler : function() {
			var selMode = grid.getSelectionModel();
			var model = selMode.getSelection();
			if (model[0]) {
				var ids = [];// 删除多个
				Ext.Array.each(model, function(item) {
							ids.push(item.raw.accid);
						});
				Ext.Msg.show({
					title : '确认删除',
					buttons : Ext.MessageBox.OKCANCEL,
					msg : '确认删除？',
					fn : function(btn) {
						if (btn == 'ok') {
							Ext.Ajax.request({
								url : 'accidentAction!delete.action?ids=' + ids,
								success : function(response) {
									Ext.Msg.show({
												title : '提示',
												msg : '删除成功！',
												buttons : Ext.Msg.OK,
												width : 300,
												fn : function() {
													store.reload();
												}
											});
								},
								failure : function(response, opts) {
									console
											.log('server-side failure with status code '
													+ response.status);
								}
							});
						}
					}
				});
			}
		}
	}],
	bbar : Ext.create('Ext.PagingToolbar', {
				pageSize : 20,// 每页20条
				store : store,
				displayInfo : true,
				plugins : Ext.create('Ext.ux.ProgressBarPager', {})
			})
});
function ExternalRefresh() {
	var proxy = store.getProxy();
	var searchBegin = null, select, ptid;
	var searchEnd = null;
	if (begin.getValue() != null) {
		searchBegin = begin.getValue().Format("yyyy-MM-dd"); // 起始时间
	}
	if (end.getValue() != null) {
		searchEnd = end.getValue().Format("yyyy-MM-dd"); // 截止时间
	}
	if (selectCombo.getValue() != 1 && selectCombo.getValue() != 2) {
		select = 0;
	} else {
		select = selectCombo.getValue();
	}
	if (prodCombobox.getValue() != 0 && prodCombobox.getValue()) {
		ptid = statusCombo.getValue();
	} else {
		ptid = 0;
	}
	proxy.extraParams = {
		"prodName" : searchProdName.getValue(),
		"beginDate" : searchBegin,
		"prodtype" : ptid,
		"endDate" : searchEnd,
		"select" : select
	};
	store.reload();
};
Ext.onReady(function() {
			Ext.create('Ext.container.Viewport', {
						layout : 'fit',
						items : [grid]
					});
			ExternalRefresh();
		});
